---
sidebar_position: 4
---

# Программное обеспечение для контроля версий

Существует несколько вариантов управления исходным кодом, которые помогают командам оптимизировать разработку. Тремя наиболее известными вариантами являются Git, Subversion (SVN) и Mercurial

## Git

[Git](https://git-scm.com/) является самым популярным вариантом и стал синонимом "управления исходным кодом". Git - это распределенная система с открытым исходным кодом, которая используется для программных проектов любого размера, что делает ее популярным вариантом для стартапов, предприятий и всего, что находится между ними.

*Графический интерфейс инструмента gitk (источник: [git-scm.com/book](https://git-scm.com/book/ru/v2/Приложение-A%3A-Git-в-других-окружениях-Графические-интерфейсы]))*:

![gitk](images/gitk.png)

## Subversion

[Subversion](https://subversion.apache.org/) - это широко распространенная централизованная система контроля версий. Эта система хранит все файлы проекта в одной кодовой строке, что делает невозможным ветвление, поэтому ее легко масштабировать для больших проектов. Он прост в освоении и содержит меры безопасности папок, поэтому доступ к вложенным папкам может быть ограничен.

*Графический интерфейс инструмента Syncro SVN Client (источник: [svnclient.oxygenxml.com](https://svnclient.oxygenxml.com/screenshots.html))*:

![Syncro SVN Client](images/svn-gui.png)

## Mercurial

[Mercurial](https://www.mercurial-scm.org/) - это распределенная система контроля версий, которая предлагает простые возможности ветвления и объединения. Система обеспечивает быстрое масштабирование и совместную разработку с интуитивно понятным интерфейсом. Гибкий интерфейс командной строки позволяет пользователям немедленно начать использовать систему.

*Графический интерфейс инструмента [hg](https://www.mercurial-scm.org/doc/hg.1.html) из [Tcl Developer Xchange](https://tcl.tk/) (источник: [askubuntu](https://askubuntu.com/questions/10331/any-complete-gui-interface-for-mercurial))*:

![hg view](images/mercurial-gui.png)

## Атрибуция

При подготовке статьи использован материал:

- [comaqa.gitbook.io/java-automation](https://comaqa.gitbook.io/java-automation/)
